package com.zs.letcode.illustration_of_algorithm;

/**
 * 剑指 Offer 05. 替换空格
 * 请实现一个函数，把字符串 s 中的每个空格替换成"%20"。
 * <p>
 * <p>
 * 示例 1：
 * <p>
 * 输入：s = "We are happy."
 * 输出："We%20are%20happy."
 * <p>
 * 限制：
 * <p>
 * 0 <= s 的长度 <= 10000
 * <p>
 * 相关标签
 * 字符串
 * <p>
 * Python3
 * <p>
 * <p>
 * 作者：Krahets
 * 链接：https://leetcode-cn.com/leetbook/read/illustration-of-algorithm/50ywkd/
 * 来源：力扣（LeetCode）
 * 著作权归作者所有。商业转载请联系作者获得授权，非商业转载请注明出处。
 *
 * @author madison
 * @description
 * @date 2021/8/8 11:16
 */
public class Chapter1 {
    public static void main(String[] args) {

    }

    private static class Solution {
        public String replaceSpace(String s) {
            return s.replaceAll("\\s", "%20");
        }

        /**
         * 方法一：字符数组
         */
        public String replaceSpace1(String s) {
            int length = s.length();
            char[] array = new char[length * 3];
            int size = 0;
            for (int i = 0; i < length; i++) {
                char c = s.charAt(i);
                if (c == ' ') {
                    array[size++] = '%';
                    array[size++] = '2';
                    array[size++] = '0';
                } else {
                    array[size++] = c;
                }
            }
            return new String(array, 0, size);
        }

        public String replaceSpace2(String s) {
            StringBuilder res = new StringBuilder();
            for(Character c : s.toCharArray())
            {
                if(c == ' ') res.append("%20");
                else res.append(c);
            }
            return res.toString();
        }


    }
}
